home *** CD-ROM | disk | FTP | other *** search
- /* AboutBox.c */
- /*****************************************************************************/
- /* */
- /* Out Of Phase: Digital Music Synthesis on General Purpose Computers */
- /* Copyright (C) 1994 Thomas R. Lawrence */
- /* */
- /* This program is free software; you can redistribute it and/or modify */
- /* it under the terms of the GNU General Public License as published by */
- /* the Free Software Foundation; either version 2 of the License, or */
- /* (at your option) any later version. */
- /* */
- /* This program is distributed in the hope that it will be useful, */
- /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
- /* GNU General Public License for more details. */
- /* */
- /* You should have received a copy of the GNU General Public License */
- /* along with this program; if not, write to the Free Software */
- /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- /* */
- /* Thomas R. Lawrence can be reached at tomlaw@world.std.com. */
- /* */
- /*****************************************************************************/
-
- #include "MiscInfo.h"
- #include "Debug.h"
- #include "Audit.h"
- #include "Definitions.h"
-
- #include "AboutBox.h"
- #include "TextEdit.h"
- #include "WindowDispatcher.h"
- #include "Memory.h"
- #include "DataMunging.h"
- #include "Main.h"
-
-
- #define WIDTH (480)
- #define HEIGHT (300)
-
- #define IPWidth (304)
- #define IPHeight (54)
- #define IPX ((WIDTH - IPWidth) / 2)
- #define IPY (12)
-
- #define PresentsY (IPY + IPHeight + 2)
-
- #define StupidWidth (272)
- #define StupidHeight (37)
- #define StupidX ((WIDTH - StupidWidth) / 2)
- #define StupidY (PresentsY + 32)
-
- #define IconWidth (32)
- #define IconHeight (32)
- #define IconX (WIDTH - IconWidth - 12)
- #define IconY (12)
-
- #define EditX (-1)
- #define EditY (StupidY + StupidHeight + 10)
- #define EditWidth (WIDTH + 2)
- #define EditHeight (HEIGHT - EditY - 20)
-
-
- struct AboutBoxWindowRec
- {
- WinType* ScreenID;
- TextEditRec* Information;
- GenericWindowRec* MyGenericWindow; /* how the window event dispatcher knows us */
- };
-
-
- /* prototypes */
- static void AboutBoxWindowDoIdle(AboutBoxWindowRec* Window,
- MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers);
- static void AboutBoxWindowBecomeActive(AboutBoxWindowRec* Window);
- static void AboutBoxWindowBecomeInactive(AboutBoxWindowRec* Window);
- static void AboutBoxWindowJustResized(AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoKeyDown(unsigned char KeyCode,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window);
- static void AboutBoxWindowClose(AboutBoxWindowRec* Window);
- static void AboutBoxWindowUpdator(AboutBoxWindowRec* Window);
- static void AboutBoxWindowMenuSetup(AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoMenuCommand(AboutBoxWindowRec* Window,
- MenuItemType* MenuItem);
-
-
- static unsigned char IntegralProductionsdx[] =
- {
- 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xF8,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x03,0xFE,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x07,0x7E,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x06,0x3E,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0C,0x1E,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0F,0xFC,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x07,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x03,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x06,0x78,0xFE,0x1E,0x01,0xF0,0x33,0x8F,0x81,0x80,0x03,0x01,0x99,0xC3,0xE0,0x1E,0xCF,0x1E,0x03,0xC7,0xF3,0x01,0xF0,0x33,0xC1,0xE8,0x00,0x00,0x7B,0x3E,0x70,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x1F,0x9C,0x30,0x21,0x83,0x1E,0xFD,0x90,0xC1,0x80,0x03,0x01,0xFE,0xC4,0x30,0x31,0xC3,0x06,0x0C,0x61,0x8F,0x02,0x18,0xFC,0xE3,0x18,0x00,0x00,0xC7,0x0C,0x20,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x60,0x86,0x1C,0x30,0x30,0x61,0x80,0x03,0x03,0x18,0x0C,0x18,0x60,0xC3,0x06,0x18,0x71,0x83,0x06,0x0C,0x30,0x63,0x08,0x00,0x01,0x83,0x0E,0x40,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x40,0xC6,0x0C,0x30,0x30,0x61,0x80,0x03,0x06,0x18,0x08,0x18,0x40,0xC3,0x06,0x10,0x31,0x83,0x04,0x0C,0x30,0x63,0x08,0x00,0x01,0x03,0x06,0x40,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xFF,0xC6,0x0C,0x30,0x00,0x61,0x80,0x03,0xF8,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x63,0xC0,0x00,0x03,0x03,0x03,0x80,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x07,0x0C,0x30,0x01,0xE1,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x61,0xF0,0x00,0x03,0x03,0x03,0x80,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x03,0x18,0x30,0x06,0x61,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x60,0x78,0x00,0x03,0x03,0x03,0x80,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x01,0xF0,0x30,0x18,0x61,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x60,0x1C,0x00,0x03,0x03,0x02,0xC0,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xE0,0xC2,0x00,0x30,0x30,0x61,0x80,0x03,0x00,0x18,0x0C,0x08,0xC0,0xC3,0x06,0x38,0x31,0x83,0x06,0x04,0x30,0x62,0x0C,0x00,0x03,0x03,0x04,0x60,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x71,0x84,0x00,0x30,0x30,0x61,0x80,0x03,0x00,0x18,0x0C,0x18,0x60,0xC3,0x06,0x1C,0x61,0x83,0x06,0x0C,0x30,0x62,0x0C,0x00,0x01,0x83,0x08,0x70,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x12,0x7F,0x07,0xF8,0x30,0x38,0xE1,0x80,0x03,0x00,0x18,0x06,0x10,0x71,0xF3,0x8F,0x8F,0xC0,0x93,0x03,0x08,0x30,0x63,0x18,0x00,0x01,0xC7,0xD8,0x38,
- 0x00,0x70,0x00,0x00,0x00,0x00,0x1F,0x9F,0xBF,0x1C,0x1E,0x03,0xFE,0xFC,0x1F,0x77,0xE0,0x0F,0xC0,0x7E,0x03,0xE0,0x1E,0xC1,0xF6,0x07,0x80,0xEF,0xC1,0xF0,0xFD,0xFA,0xF0,0x00,0x00,0x7B,0x3C,0x7C,
- 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x70,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x60,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x60,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xF0,0xE0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xF8,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xFD,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xFF,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3E,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
-
- static unsigned char NameOfProgram[] =
- {
- 0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x00,0x7F,0xE0,0x00,0x7F,0xFF,0x80,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0xFF,0xFF,0x80,0x01,0xFF,0xF0,0x00,0xFF,0xFF,0xF0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x03,0xF8,0x3F,0x80,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x01,0xFC,0x1F,0xC0,0x03,0xFF,0xF0,0x00,0xFF,0xFF,0xF8,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x03,0xF0,0x0F,0xE0,0x03,0xF1,0xF0,0x00,0x3F,0xC3,0xF8,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0F,0xC0,0x0F,0xC0,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x07,0xE0,0x07,0xE0,0x07,0xF0,0xE0,0x00,0x3F,0xC1,0xFC,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1F,0xC0,0x0F,0xE0,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x0F,0xE0,0x07,0xF0,0x07,0xE0,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3F,0x80,0x07,0xE0,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x1F,0xC0,0x03,0xF0,0x0F,0xE0,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3F,0x80,0x07,0xF0,0x1F,0x83,0xF8,0x0F,0xFF,0xC0,0x00,0x1F,0xC0,0x03,0xF8,0x7F,0xFC,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC7,0xE0,0x00,0x3F,0x9F,0xC0,0x07,0xF8,0x00,0x07,0xF0,
- 0x7F,0x00,0x07,0xF3,0xFF,0x83,0xF8,0x1F,0xFF,0xC0,0x00,0x3F,0x80,0x03,0xF8,0xFF,0xFC,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xDF,0xF8,0x00,0xFF,0xFF,0xC0,0x1F,0xFE,0x00,0x3F,0xFC,
- 0x7F,0x00,0x07,0xF3,0xFF,0x87,0xF8,0x1F,0xFF,0xC0,0x00,0x3F,0x80,0x03,0xF8,0xFF,0xF8,0x00,0x00,0x3F,0x81,0xFC,0x3F,0xFF,0xF8,0x01,0xFF,0xFF,0xC0,0x7F,0xFF,0x80,0xFF,0xFE,
- 0x7F,0x00,0x07,0xF3,0xFF,0x07,0xF0,0x07,0xF0,0x00,0x00,0x3F,0x80,0x03,0xF8,0x1F,0xE0,0x00,0x00,0x7F,0x83,0xF8,0x3F,0xFF,0xFC,0x07,0xF8,0x7F,0x80,0xFE,0x3F,0x81,0xFC,0x7F,
- 0xFE,0x00,0x07,0xF0,0xFF,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0x07,0xF8,0x3F,0xE3,0xFC,0x07,0xF0,0x3F,0x80,0xFC,0x1F,0x83,0xF8,0x3F,
- 0xFE,0x00,0x07,0xF0,0x7F,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0x0F,0xF0,0x3F,0x81,0xFC,0x0F,0xE0,0x3F,0x81,0xFC,0x07,0x07,0xF0,0x3F,
- 0xFE,0x00,0x07,0xF0,0x7F,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0xE0,0x3F,0x81,0xFC,0x1F,0xC0,0x3F,0x81,0xFE,0x00,0x07,0xF0,0x3F,
- 0xFE,0x00,0x07,0xF0,0xFF,0x0F,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0xC0,0x7F,0x81,0xFC,0x1F,0xC0,0x3F,0x81,0xFF,0xC0,0x0F,0xE0,0x7E,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0x00,0x7F,0x01,0xF8,0x3F,0x80,0x7F,0x01,0xFF,0xF8,0x0F,0xE3,0xFE,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x1F,0xC0,0x00,0x00,0xFF,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0xFF,0xFC,0x1F,0xFF,0xFC,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x3F,0xC0,0x00,0x00,0xFE,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0x7F,0xFE,0x1F,0xFF,0xE0,
- 0xFE,0x00,0x1F,0xC0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x0F,0xE0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0x0F,0xFF,0x1F,0xFF,0x00,
- 0x7E,0x00,0x1F,0xC1,0xFC,0x1F,0xE0,0x0F,0xE0,0x00,0x00,0x3F,0x00,0x0F,0xE0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFF,0x03,0xF0,0x3F,0x80,0xFF,0x00,0x01,0xFF,0x1F,0xC0,0x00,
- 0x7F,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x1F,0xC0,0x00,0x00,0x3F,0x80,0x1F,0xC0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFE,0x07,0xF0,0x3F,0x80,0xFF,0x03,0x80,0xFF,0x1F,0xC0,0x00,
- 0x3F,0x00,0x3F,0x01,0xFC,0x1F,0xC0,0x1F,0xC3,0x00,0x00,0x1F,0x80,0x1F,0x80,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFE,0x07,0xF0,0x3F,0x81,0xFF,0x07,0xE0,0x7F,0x1F,0xC0,0x0C,
- 0x3F,0x80,0x7E,0x01,0xFC,0x7F,0xE4,0x1F,0xC7,0x00,0x00,0x1F,0xC0,0x3F,0x00,0x3F,0x80,0x00,0x01,0xFE,0x00,0x00,0xFE,0x07,0xF1,0x1F,0xC3,0xFF,0x17,0xE0,0x7E,0x0F,0xF0,0x7E,
- 0x1F,0xC1,0xFC,0x01,0xFF,0xFF,0xFC,0x1F,0xFF,0x80,0x00,0x0F,0xE0,0xFE,0x00,0x3F,0x80,0x00,0x03,0xFE,0x00,0x00,0xFE,0x07,0xFF,0x9F,0xFF,0xFF,0xFF,0xF8,0xFE,0x0F,0xFF,0xFC,
- 0x0F,0xFF,0xF8,0x00,0xFF,0xFF,0xFE,0x1F,0xFF,0x00,0x00,0x07,0xFF,0xFC,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFE,0x07,0xFF,0x8F,0xFE,0xFF,0xFB,0xFF,0xFC,0x07,0xFF,0xF8,
- 0x03,0xFF,0xE0,0x00,0xFF,0x9F,0xF8,0x0F,0xFC,0x00,0x00,0x01,0xFF,0xF0,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFC,0x03,0xFF,0x07,0xFC,0x7F,0xE1,0xFF,0xF0,0x03,0xFF,0xE0,
- 0x00,0xFF,0x00,0x00,0x3E,0x07,0xE0,0x03,0xE0,0x00,0x00,0x00,0x7F,0x80,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFC,0x00,0xF8,0x03,0xF0,0x3F,0x00,0x7F,0xC0,0x00,0x7F,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x81,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
-
- static unsigned char Icon[] =
- {
- 0x00,0x01,0x00,0x00, 0x00,0x02,0x80,0x00, 0x00,0x04,0x40,0x00, 0x00,0x08,0x20,0x00,
- 0x00,0x10,0x10,0x00, 0x00,0x20,0x08,0x00, 0x00,0x40,0x04,0x00, 0x00,0x84,0x02,0x00,
- 0xFF,0xF5,0xFF,0xFF, 0x02,0x04,0x00,0x80, 0x04,0x04,0x00,0x40, 0xFF,0xF5,0xFF,0xFF,
- 0x10,0x04,0x00,0x10, 0x20,0x04,0x00,0x08, 0xFF,0xF5,0xBF,0x3F, 0x80,0x04,0x40,0x82,
- 0x40,0x04,0x80,0x41, 0xFF,0x9D,0x30,0x2F, 0x10,0x3D,0xC8,0x14, 0x08,0x3E,0x7F,0x8F,
- 0xFF,0xBA,0x30,0x07, 0x02,0x01,0x00,0x07, 0x01,0x00,0x80,0x07, 0x00,0x80,0x60,0x07,
- 0x00,0x40,0x1F,0xE7, 0x00,0x20,0x02,0x1F, 0x00,0x10,0x04,0x07, 0x00,0x08,0x08,0x00,
- 0x00,0x04,0x10,0x00, 0x00,0x02,0x20,0x00, 0x00,0x01,0x40,0x00, 0x00,0x00,0x80,0x00
- };
-
- static char* Message[] =
- {
- "Written by Thomas R. Lawrence (tomlaw@world.std.com), Copyright (C) 1994.\x0d"
- "This program is distributed under version 2 of the GNU General Public\x0d"
- "License. It may be freely redistributed under certain conditions. There\x0d"
- "is ABSOLUTELY NO WARRANTY. Please read the License Agreement below.\x0d"
- "\x0d"
- "\x0d"
- ,
- "Special thanks to the following people:\x0d"
- "\x0d"
- " Craig Peeper showed me all kinds of awful file formats and described\x0d"
- " how many of the programs for MS-DOS/Windows worked. He also showed me\x0d"
- " how the Gravis UltraSound worked and gave me an efficient interpolation\x0d"
- " formula.\x0d"
- "\x0d"
- " Eric Oehler helped design the synthesizer and provided insight into\x0d"
- " synthesis algorithms and systems used by the 'pros'.\x0d"
- "\x0d"
- " William Annis supplied information about synthesis mechanisms and\x0d"
- " psychoacoustics.\x0d"
- "\x0d"
- "\x0d"
- ,
- " GNU GENERAL PUBLIC LICENSE\x0d"
- " Version 2, June 1991\x0d"
- "\x0d"
- ,
- " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\x0d"
- " 675 Mass Ave, Cambridge, MA 02139, USA\x0d"
- " Everyone is permitted to copy and distribute verbatim copies\x0d"
- " of this license document, but changing it is not allowed.\x0d"
- "\x0d"
- ,
- " Preamble\x0d"
- "\x0d"
- " The licenses for most software are designed to take away your\x0d"
- "freedom to share and change it. By contrast, the GNU General Public\x0d"
- "License is intended to guarantee your freedom to share and change free\x0d"
- "software--to make sure the software is free for all its users. This\x0d"
- "General Public License applies to most of the Free Software\x0d"
- "Foundation's software and to any other program whose authors commit to\x0d"
- "using it. (Some other Free Software Foundation software is covered by\x0d"
- "the GNU Library General Public License instead.) You can apply it to\x0d"
- "your programs, too.\x0d"
- "\x0d"
- ,
- " When we speak of free software, we are referring to freedom, not\x0d"
- "price. Our General Public Licenses are designed to make sure that you\x0d"
- "have the freedom to distribute copies of free software (and charge for\x0d"
- "this service if you wish), that you receive source code or can get it\x0d"
- "if you want it, that you can change the software or use pieces of it\x0d"
- "in new free programs; and that you know you can do these things.\x0d"
- "\x0d"
- ,
- " To protect your rights, we need to make restrictions that forbid\x0d"
- "anyone to deny you these rights or to ask you to surrender the rights.\x0d"
- "These restrictions translate to certain responsibilities for you if you\x0d"
- "distribute copies of the software, or if you modify it.\x0d"
- "\x0d"
- ,
- " For example, if you distribute copies of such a program, whether\x0d"
- "gratis or for a fee, you must give the recipients all the rights that\x0d"
- "you have. You must make sure that they, too, receive or can get the\x0d"
- "source code. And you must show them these terms so they know their\x0d"
- "rights.\x0d"
- "\x0d"
- ,
- " We protect your rights with two steps: (1) copyright the software, and\x0d"
- "(2) offer you this license which gives you legal permission to copy,\x0d"
- "distribute and/or modify the software.\x0d"
- "\x0d"
- ,
- " Also, for each author's protection and ours, we want to make certain\x0d"
- "that everyone understands that there is no warranty for this free\x0d"
- "software. If the software is modified by someone else and passed on, we\x0d"
- "want its recipients to know that what they have is not the original, so\x0d"
- "that any problems introduced by others will not reflect on the original\x0d"
- "authors' reputations.\x0d"
- "\x0d"
- ,
- " Finally, any free program is threatened constantly by software\x0d"
- "patents. We wish to avoid the danger that redistributors of a free\x0d"
- "program will individually obtain patent licenses, in effect making the\x0d"
- "program proprietary. To prevent this, we have made it clear that any\x0d"
- "patent must be licensed for everyone's free use or not licensed at all.\x0d"
- "\x0d"
- ,
- " The precise terms and conditions for copying, distribution and\x0d"
- "modification follow.\x0d"
- "\x0d"
- ,
- " GNU GENERAL PUBLIC LICENSE\x0d"
- " TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\x0d"
- "\x0d"
- ,
- " 0. This License applies to any program or other work which contains\x0d"
- "a notice placed by the copyright holder saying it may be distributed\x0d"
- "under the terms of this General Public License. The \"Program\", below,\x0d"
- "refers to any such program or work, and a \"work based on the Program\"\x0d"
- "means either the Program or any derivative work under copyright law:\x0d"
- "that is to say, a work containing the Program or a portion of it,\x0d"
- "either verbatim or with modifications and/or translated into another\x0d"
- "language. (Hereinafter, translation is included without limitation in\x0d"
- "the term \"modification\".) Each licensee is addressed as \"you\".\x0d"
- "\x0d"
- ,
- "Activities other than copying, distribution and modification are not\x0d"
- "covered by this License; they are outside its scope. The act of\x0d"
- "running the Program is not restricted, and the output from the Program\x0d"
- "is covered only if its contents constitute a work based on the\x0d"
- "Program (independent of having been made by running the Program).\x0d"
- "Whether that is true depends on what the Program does.\x0d"
- "\x0d"
- ,
- " 1. You may copy and distribute verbatim copies of the Program's\x0d"
- "source code as you receive it, in any medium, provided that you\x0d"
- "conspicuously and appropriately publish on each copy an appropriate\x0d"
- "copyright notice and disclaimer of warranty; keep intact all the\x0d"
- "notices that refer to this License and to the absence of any warranty;\x0d"
- "and give any other recipients of the Program a copy of this License\x0d"
- "along with the Program.\x0d"
- "\x0d"
- ,
- "You may charge a fee for the physical act of transferring a copy, and\x0d"
- "you may at your option offer warranty protection in exchange for a fee.\x0d"
- "\x0d"
- ,
- " 2. You may modify your copy or copies of the Program or any portion\x0d"
- "of it, thus forming a work based on the Program, and copy and\x0d"
- "distribute such modifications or work under the terms of Section 1\x0d"
- "above, provided that you also meet all of these conditions:\x0d"
- "\x0d"
- ,
- " a) You must cause the modified files to carry prominent notices\x0d"
- " stating that you changed the files and the date of any change.\x0d"
- "\x0d"
- ,
- " b) You must cause any work that you distribute or publish, that in\x0d"
- " whole or in part contains or is derived from the Program or any\x0d"
- " part thereof, to be licensed as a whole at no charge to all third\x0d"
- " parties under the terms of this License.\x0d"
- "\x0d"
- ,
- " c) If the modified program normally reads commands interactively\x0d"
- " when run, you must cause it, when started running for such\x0d"
- " interactive use in the most ordinary way, to print or display an\x0d"
- " announcement including an appropriate copyright notice and a\x0d"
- " notice that there is no warranty (or else, saying that you provide\x0d"
- " a warranty) and that users may redistribute the program under\x0d"
- " these conditions, and telling the user how to view a copy of this\x0d"
- " License. (Exception: if the Program itself is interactive but\x0d"
- " does not normally print such an announcement, your work based on\x0d"
- " the Program is not required to print an announcement.)\x0d"
- "\x0d"
- ,
- "These requirements apply to the modified work as a whole. If\x0d"
- "identifiable sections of that work are not derived from the Program,\x0d"
- "and can be reasonably considered independent and separate works in\x0d"
- "themselves, then this License, and its terms, do not apply to those\x0d"
- "sections when you distribute them as separate works. But when you\x0d"
- "distribute the same sections as part of a whole which is a work based\x0d"
- "on the Program, the distribution of the whole must be on the terms of\x0d"
- "this License, whose permissions for other licensees extend to the\x0d"
- "entire whole, and thus to each and every part regardless of who wrote it.\x0d"
- "\x0d"
- ,
- "Thus, it is not the intent of this section to claim rights or contest\x0d"
- "your rights to work written entirely by you; rather, the intent is to\x0d"
- "exercise the right to control the distribution of derivative or\x0d"
- "collective works based on the Program.\x0d"
- "\x0d"
- ,
- "In addition, mere aggregation of another work not based on the Program\x0d"
- "with the Program (or with a work based on the Program) on a volume of\x0d"
- "a storage or distribution medium does not bring the other work under\x0d"
- "the scope of this License.\x0d"
- "\x0d"
- ,
- " 3. You may copy and distribute the Program (or a work based on it,\x0d"
- "under Section 2) in object code or executable form under the terms of\x0d"
- "Sections 1 and 2 above provided that you also do one of the following:\x0d"
- "\x0d"
- ,
- " a) Accompany it with the complete corresponding machine-readable\x0d"
- " source code, which must be distributed under the terms of Sections\x0d"
- " 1 and 2 above on a medium customarily used for software interchange; or,\x0d"
- "\x0d"
- ,
- " b) Accompany it with a written offer, valid for at least three\x0d"
- " years, to give any third party, for a charge no more than your\x0d"
- " cost of physically performing source distribution, a complete\x0d"
- " machine-readable copy of the corresponding source code, to be\x0d"
- " distributed under the terms of Sections 1 and 2 above on a medium\x0d"
- " customarily used for software interchange; or,\x0d"
- "\x0d"
- ,
- " c) Accompany it with the information you received as to the offer\x0d"
- " to distribute corresponding source code. (This alternative is\x0d"
- " allowed only for noncommercial distribution and only if you\x0d"
- " received the program in object code or executable form with such\x0d"
- " an offer, in accord with Subsection b above.)\x0d"
- "\x0d"
- ,
- "The source code for a work means the preferred form of the work for\x0d"
- "making modifications to it. For an executable work, complete source\x0d"
- "code means all the source code for all modules it contains, plus any\x0d"
- "associated interface definition files, plus the scripts used to\x0d"
- "control compilation and installation of the executable. However, as a\x0d"
- "special exception, the source code distributed need not include\x0d"
- "anything that is normally distributed (in either source or binary\x0d"
- "form) with the major components (compiler, kernel, and so on) of the\x0d"
- "operating system on which the executable runs, unless that component\x0d"
- "itself accompanies the executable.\x0d"
- "\x0d"
- ,
- "If distribution of executable or object code is made by offering\x0d"
- "access to copy from a designated place, then offering equivalent\x0d"
- "access to copy the source code from the same place counts as\x0d"
- "distribution of the source code, even though third parties are not\x0d"
- "compelled to copy the source along with the object code.\x0d"
- "\x0d"
- ,
- " 4. You may not copy, modify, sublicense, or distribute the Program\x0d"
- "except as expressly provided under this License. Any attempt\x0d"
- "otherwise to copy, modify, sublicense or distribute the Program is\x0d"
- "void, and will automatically terminate your rights under this License.\x0d"
- "However, parties who have received copies, or rights, from you under\x0d"
- "this License will not have their licenses terminated so long as such\x0d"
- "parties remain in full compliance.\x0d"
- "\x0d"
- ,
- " 5. You are not required to accept this License, since you have not\x0d"
- "signed it. However, nothing else grants you permission to modify or\x0d"
- "distribute the Program or its derivative works. These actions are\x0d"
- "prohibited by law if you do not accept this License. Therefore, by\x0d"
- "modifying or distributing the Program (or any work based on the\x0d"
- "Program), you indicate your acceptance of this License to do so, and\x0d"
- "all its terms and conditions for copying, distributing or modifying\x0d"
- "the Program or works based on it.\x0d"
- "\x0d"
- ,
- " 6. Each time you redistribute the Program (or any work based on the\x0d"
- "Program), the recipient automatically receives a license from the\x0d"
- "original licensor to copy, distribute or modify the Program subject to\x0d"
- "these terms and conditions. You may not impose any further\x0d"
- "restrictions on the recipients' exercise of the rights granted herein.\x0d"
- "You are not responsible for enforcing compliance by third parties to\x0d"
- "this License.\x0d"
- "\x0d"
- ,
- " 7. If, as a consequence of a court judgment or allegation of patent\x0d"
- "infringement or for any other reason (not limited to patent issues),\x0d"
- "conditions are imposed on you (whether by court order, agreement or\x0d"
- "otherwise) that contradict the conditions of this License, they do not\x0d"
- "excuse you from the conditions of this License. If you cannot\x0d"
- "distribute so as to satisfy simultaneously your obligations under this\x0d"
- "License and any other pertinent obligations, then as a consequence you\x0d"
- "may not distribute the Program at all. For example, if a patent\x0d"
- "license would not permit royalty-free redistribution of the Program by\x0d"
- "all those who receive copies directly or indirectly through you, then\x0d"
- "the only way you could satisfy both it and this License would be to\x0d"
- "refrain entirely from distribution of the Program.\x0d"
- "\x0d"
- ,
- "If any portion of this section is held invalid or unenforceable under\x0d"
- "any particular circumstance, the balance of the section is intended to\x0d"
- "apply and the section as a whole is intended to apply in other\x0d"
- "circumstances.\x0d"
- "\x0d"
- ,
- "It is not the purpose of this section to induce you to infringe any\x0d"
- "patents or other property right claims or to contest validity of any\x0d"
- "such claims; this section has the sole purpose of protecting the\x0d"
- "integrity of the free software distribution system, which is\x0d"
- "implemented by public license practices. Many people have made\x0d"
- "generous contributions to the wide range of software distributed\x0d"
- "through that system in reliance on consistent application of that\x0d"
- "system; it is up to the author/donor to decide if he or she is willing\x0d"
- "to distribute software through any other system and a licensee cannot\x0d"
- "impose that choice.\x0d"
- "\x0d"
- ,
- "This section is intended to make thoroughly clear what is believed to\x0d"
- "be a consequence of the rest of this License.\x0d"
- "\x0d"
- ,
- " 8. If the distribution and/or use of the Program is restricted in\x0d"
- "certain countries either by patents or by copyrighted interfaces, the\x0d"
- "original copyright holder who places the Program under this License\x0d"
- "may add an explicit geographical distribution limitation excluding\x0d"
- "those countries, so that distribution is permitted only in or among\x0d"
- "countries not thus excluded. In such case, this License incorporates\x0d"
- "the limitation as if written in the body of this License.\x0d"
- "\x0d"
- ,
- " 9. The Free Software Foundation may publish revised and/or new versions\x0d"
- "of the General Public License from time to time. Such new versions will\x0d"
- "be similar in spirit to the present version, but may differ in detail to\x0d"
- "address new problems or concerns.\x0d"
- "\x0d"
- ,
- "Each version is given a distinguishing version number. If the Program\x0d"
- "specifies a version number of this License which applies to it and \"any\x0d"
- "later version\", you have the option of following the terms and conditions\x0d"
- "either of that version or of any later version published by the Free\x0d"
- "Software Foundation. If the Program does not specify a version number of\x0d"
- "this License, you may choose any version ever published by the Free Software\x0d"
- "Foundation.\x0d"
- "\x0d"
- ,
- " 10. If you wish to incorporate parts of the Program into other free\x0d"
- "programs whose distribution conditions are different, write to the author\x0d"
- "to ask for permission. For software which is copyrighted by the Free\x0d"
- "Software Foundation, write to the Free Software Foundation; we sometimes\x0d"
- "make exceptions for this. Our decision will be guided by the two goals\x0d"
- "of preserving the free status of all derivatives of our free software and\x0d"
- "of promoting the sharing and reuse of software generally.\x0d"
- "\x0d"
- ,
- " NO WARRANTY\x0d"
- "\x0d"
- " 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\x0d"
- "FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\x0d"
- "OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\x0d"
- "PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\x0d"
- "OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\x0d"
- "MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\x0d"
- "TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\x0d"
- "PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\x0d"
- "REPAIR OR CORRECTION.\x0d"
- "\x0d"
- ,
- " 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\x0d"
- "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\x0d"
- "REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\x0d"
- "INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\x0d"
- "OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\x0d"
- "TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\x0d"
- "YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\x0d"
- "PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\x0d"
- "POSSIBILITY OF SUCH DAMAGES.\x0d"
- "\x0d"
- ,
- " END OF TERMS AND CONDITIONS\x0d"
- "\x0d"
- " Appendix: How to Apply These Terms to Your New Programs\x0d"
- "\x0d"
- ,
- " If you develop a new program, and you want it to be of the greatest\x0d"
- "possible use to the public, the best way to achieve this is to make it\x0d"
- "free software which everyone can redistribute and change under these terms.\x0d"
- "\x0d"
- ,
- " To do so, attach the following notices to the program. It is safest\x0d"
- "to attach them to the start of each source file to most effectively\x0d"
- "convey the exclusion of warranty; and each file should have at least\x0d"
- "the \"copyright\" line and a pointer to where the full notice is found.\x0d"
- "\x0d"
- ,
- " <one line to give the program's name and a brief idea of what it does.>\x0d"
- " Copyright (C) 19yy <name of author>\x0d"
- "\x0d"
- ,
- " This program is free software; you can redistribute it and/or modify\x0d"
- " it under the terms of the GNU General Public License as published by\x0d"
- " the Free Software Foundation; either version 2 of the License, or\x0d"
- " (at your option) any later version.\x0d"
- "\x0d"
- ,
- " This program is distributed in the hope that it will be useful,\x0d"
- " but WITHOUT ANY WARRANTY; without even the implied warranty of\x0d"
- " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\x0d"
- " GNU General Public License for more details.\x0d"
- "\x0d"
- ,
- " You should have received a copy of the GNU General Public License\x0d"
- " along with this program; if not, write to the Free Software\x0d"
- " Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\x0d"
- "\x0d"
- ,
- "Also add information on how to contact you by electronic and paper mail.\x0d"
- "\x0d"
- "If the program is interactive, make it output a short notice like this\x0d"
- "when it starts in an interactive mode:\x0d"
- "\x0d"
- ,
- " Gnomovision version 69, Copyright (C) 19yy name of author\x0d"
- " Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\x0d"
- " This is free software, and you are welcome to redistribute it\x0d"
- " under certain conditions; type `show c' for details.\x0d"
- "\x0d"
- ,
- "The hypothetical commands `show w' and `show c' should show the appropriate\x0d"
- "parts of the General Public License. Of course, the commands you use may\x0d"
- "be called something other than `show w' and `show c'; they could even be\x0d"
- "mouse-clicks or menu items--whatever suits your program.\x0d"
- "\x0d"
- ,
- "You should also get your employer (if you work as a programmer) or your\x0d"
- "school, if any, to sign a \"copyright disclaimer\" for the program, if\x0d"
- "necessary. Here is a sample; alter the names:\x0d"
- "\x0d"
- ,
- " Yoyodyne, Inc., hereby disclaims all copyright interest in the program\x0d"
- " `Gnomovision' (which makes passes at compilers) written by James Hacker.\x0d"
- "\x0d"
- ,
- " <signature of Ty Coon>, 1 April 1989\x0d"
- " Ty Coon, President of Vice\x0d"
- "\x0d"
- ,
- "This General Public License does not permit incorporating your program into\x0d"
- "proprietary programs. If your program is a subroutine library, you may\x0d"
- "consider it more useful to permit linking proprietary applications with the\x0d"
- "library. If this is what you want to do, use the GNU Library General\x0d"
- "Public License instead of this License.\x0d"
- };
- #define MESSAGELENGTH (sizeof(Message) / sizeof(Message[0]))
-
-
- static AboutBoxWindowRec* CurrentAboutBox = NIL;
-
-
- /* return a non-null terminated heap allocated block */
- static char* GetTheMessage(void)
- {
- char* Accumulator;
- long Scan;
-
- Accumulator = AllocPtrCanFail(0,"GetTheMessage");
- if (Accumulator == NIL)
- {
- FailurePoint1:
- return NIL;
- }
- for (Scan = 0; Scan < MESSAGELENGTH; Scan += 1)
- {
- char* String;
- char* Meow;
-
- String = StringToBlockCopy(Message[Scan]);
- if (String == NIL)
- {
- FailurePoint2:
- ReleasePtr(Accumulator);
- goto FailurePoint1;
- }
- Meow = ConcatBlockCopy(Accumulator,String);
- ReleasePtr(String);
- if (Meow == NIL)
- {
- goto FailurePoint2;
- }
- ReleasePtr(Accumulator);
- Accumulator = Meow;
- }
- return Accumulator;
- }
-
-
- /* show the about box. this creates a new box if there isn't one, or raises the */
- /* window to the top if there already is one. */
- void ShowAboutBox(void)
- {
- if (CurrentAboutBox != NIL)
- {
- ActivateThisWindow(CurrentAboutBox->ScreenID);
- }
- else
- {
- char* Data;
-
- CurrentAboutBox = (AboutBoxWindowRec*)AllocPtrCanFail(
- sizeof(AboutBoxWindowRec),"AboutBoxWindowRec");
- if (CurrentAboutBox == NIL)
- {
- FailurePoint1:
- return;
- }
- CurrentAboutBox->ScreenID = MakeNewWindow(eDocumentWindow,eWindowClosable,
- eWindowNotZoomable,eWindowNotResizable,DialogLeftEdge(WIDTH),
- DialogTopEdge(HEIGHT),WIDTH,HEIGHT,
- (void (*)(void*))&AboutBoxWindowUpdator,CurrentAboutBox);
- if (CurrentAboutBox->ScreenID == 0)
- {
- FailurePoint2:
- ReleasePtr((char*)CurrentAboutBox);
- CurrentAboutBox = NIL;
- goto FailurePoint1;
- }
- CurrentAboutBox->Information = NewTextEdit(CurrentAboutBox->ScreenID,
- eTEVScrollBar,GetMonospacedFont(),9,EditX,EditY,EditWidth,EditHeight);
- if (CurrentAboutBox->Information == NIL)
- {
- FailurePoint3:
- KillWindow(CurrentAboutBox->ScreenID);
- goto FailurePoint2;
- }
- Data = GetTheMessage();
- if (Data == NIL)
- {
- FailurePoint4:
- DisposeTextEdit(CurrentAboutBox->Information);
- goto FailurePoint3;
- }
- TextEditNewRawData(CurrentAboutBox->Information,Data,"\x0d");
- ReleasePtr(Data);
- /* notify window management */
- CurrentAboutBox->MyGenericWindow
- = CheckInNewWindow(CurrentAboutBox->ScreenID,CurrentAboutBox,
- (void (*)(void*,MyBoolean,OrdType,OrdType,ModifierFlags))&AboutBoxWindowDoIdle,
- (void (*)(void*))&AboutBoxWindowBecomeActive,
- (void (*)(void*))&AboutBoxWindowBecomeInactive,
- (void (*)(void*))&AboutBoxWindowJustResized,
- (void (*)(OrdType,OrdType,ModifierFlags,void*))&AboutBoxWindowDoMouseDown,
- (void (*)(unsigned char,ModifierFlags,void*))&AboutBoxWindowDoKeyDown,
- (void (*)(void*))&AboutBoxWindowClose,
- (void (*)(void*))&AboutBoxWindowMenuSetup,
- (void (*)(void*,MenuItemType*))&AboutBoxWindowDoMenuCommand);
- if (CurrentAboutBox->MyGenericWindow == NIL)
- {
- FailurePoint5:
- goto FailurePoint4;
- }
- SetWindowName(CurrentAboutBox->ScreenID,"About Out Of Phase...");
- AboutBoxWindowUpdator(CurrentAboutBox);
- }
- }
-
-
- /* close the about box. does nothing if no about box is open */
- void HideAnyAboutBoxes(void)
- {
- if (CurrentAboutBox != NIL)
- {
- CheckPtrExistence(CurrentAboutBox);
- CheckOutDyingWindow(CurrentAboutBox->MyGenericWindow);
- DisposeTextEdit(CurrentAboutBox->Information);
- KillWindow(CurrentAboutBox->ScreenID);
- ReleasePtr((char*)CurrentAboutBox);
- CurrentAboutBox = NIL;
- }
- }
-
-
- static void AboutBoxWindowDoIdle(AboutBoxWindowRec* Window,
- MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoIdle: window pointer inconsistency"));
- TextEditUpdateCursor(Window->Information);
- if (CheckCursorFlag)
- {
- if (TextEditIBeamTest(Window->Information,XLoc,YLoc))
- {
- SetIBeamCursor();
- }
- else
- {
- SetArrowCursor();
- }
- }
- }
-
-
- static void AboutBoxWindowBecomeActive(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowBecomeActive: window pointer inconsistency"));
- EnableTextEditSelection(Window->Information);
- }
-
-
- static void AboutBoxWindowBecomeInactive(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowBecomeInactive: window pointer inconsistency"));
- DisableTextEditSelection(Window->Information);
- }
-
-
- static void AboutBoxWindowJustResized(AboutBoxWindowRec* Window)
- {
- EXECUTE(PRERR(ForceAbort,"AboutBoxWindowJustResized: about box can't resize"));
- }
-
-
- static void AboutBoxWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoMouseDown: window pointer inconsistency"));
- if (TextEditHitTest(Window->Information,XLoc,YLoc))
- {
- TextEditDoMouseDown(Window->Information,XLoc,YLoc,Modifiers);
- }
- }
-
-
- static void AboutBoxWindowDoKeyDown(unsigned char KeyCode,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoKeyDown: window pointer inconsistency"));
- if ((KeyCode == eLeftArrow) || (KeyCode == eRightArrow)
- || (KeyCode == eUpArrow) || (KeyCode == eDownArrow))
- {
- TextEditDoKeyPressed(Window->Information,KeyCode,Modifiers);
- }
- else if (KeyCode == eCancelKey)
- {
- AboutBoxWindowClose(Window);
- }
- }
-
-
- static void AboutBoxWindowClose(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowClose: window pointer inconsistency"));
- HideAnyAboutBoxes();
- }
-
-
- static void DrawImage(WinType* Window, OrdType X, OrdType Y, OrdType Width,
- OrdType Height, unsigned char* RawData)
- {
- Bitmap* TheBitmap;
-
- TheBitmap = MakeBitmap(RawData,Width,Height,((Width + 7) / 8));
- if (TheBitmap != NIL)
- {
- SetClipRect(Window,0,0,WIDTH,HEIGHT);
- DrawBitmap(Window,X,Y,TheBitmap);
- DisposeBitmap(TheBitmap);
- }
- }
-
-
- static void AboutBoxWindowUpdator(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowUpdator: window pointer inconsistency"));
- DrawImage(Window->ScreenID,IPX,IPY,IPWidth,IPHeight,IntegralProductionsdx);
- DrawTextLine(Window->ScreenID,GetScreenFont(),9,"Presents",StrLen("Presents"),
- (WIDTH - LengthOfText(GetScreenFont(),9,"Presents",StrLen("Presents"),ePlain)) / 2,
- PresentsY,ePlain);
- DrawImage(Window->ScreenID,StupidX,StupidY,StupidWidth,StupidHeight,NameOfProgram);
- DrawImage(Window->ScreenID,IconX,IconY,IconWidth,IconHeight,Icon);
- DrawTextLine(Window->ScreenID,GetScreenFont(),9,"Version "VersionString,
- StrLen("Version "VersionString),5,HEIGHT - GetFontHeight(GetScreenFont(),9) - 3,
- ePlain);
- TextEditFullRedraw(Window->Information);
- }
-
-
- static void AboutBoxWindowMenuSetup(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowMenuSetup: window pointer inconsistency"));
- if (TextEditIsThereValidSelection(Window->Information))
- {
- EnableMenuItem(mCopy);
- ChangeItemName(mCopy,"Copy Text");
- }
- EnableMenuItem(mSelectAll);
- ChangeItemName(mSelectAll,"Select All Text");
- ChangeItemName(mCloseFile,"Close About Box");
- EnableMenuItem(mCloseFile);
- }
-
-
- static void AboutBoxWindowDoMenuCommand(AboutBoxWindowRec* Window,
- MenuItemType* MenuItem)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoMenuCommand: window pointer inconsistency"));
- if (MenuItem == mCopy)
- {
- TextEditDoMenuCopy(Window->Information);
- }
- else if (MenuItem == mSelectAll)
- {
- TextEditDoMenuSelectAll(Window->Information);
- }
- else if (MenuItem == mCloseFile)
- {
- AboutBoxWindowClose(Window);
- }
- else
- {
- EXECUTE(PRERR(ForceAbort,"AboutBoxWindowDoMenuCommand: unknown command"));
- }
- }
-